home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
c
/
flashpc.exe
/
TEST.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-03-25
|
4KB
|
149 lines
#include <stdlib.h>
#include <stdio.h>
#include "..\include\fpcwin.h"
/*--------------------------------------------------------------------
-
--------------------------------------------------------------------*/
void DspScn( void )
{
ClrWin( 1, 1, 80, 25, 0x70 );
WindowFP( 1, 1, 80, 25 );
FrameWin( '┌', '┐', '└', '┘', '─', '│', 0x70 );
DspMsg( 31, 1, " Message Monitor " );
DspMsg( 3, 3, "Last Key Message" );
DspMsg( 3, 4, " Char code......." );
DspMsg( 3, 5, " Scan code......." );
DspMsg( 3, 7, "Keyboard Flags" );
DspMsg( 3, 8, " KC_CHAR............ FALSE" );
DspMsg( 3, 9, " KC_VIRTUALKEY...... FALSE" );
DspMsg( 3, 10, " KC_SCANCODE........ FALSE" );
DspMsg( 3, 11, " KC_SHIFT........... FALSE" );
DspMsg( 3, 12, " KC_CTRL............ FALSE" );
DspMsg( 3, 13, " KC_ALT............. FALSE" );
DspMsg( 3, 14, " KC_KEYUP........... FALSE" );
DspMsg( 3, 15, " KC_PREVDOWN........ FALSE" );
DspMsg( 3, 16, " KC_LONEKEY......... FALSE" );
DspMsg( 3, 17, " KC_DEADKEY......... FALSE" );
DspMsg( 3, 18, " KC_COMPOSITE....... FALSE" );
DspMsg( 3, 19, " KC_INVALIDCOMP..... FALSE" );
DspMsg( 43, 3, "Last Mouse Message" );
DspMsg( 43, 4, " x............" );
DspMsg( 43, 5, " y............" );
DspMsg( 43, 6, " codeHitTest.." );
DspMsg( 43, 8, "Last Message...." );
DspMsg( 43, 9, "Clock Ticks....." );
}
/*--------------------------------------------------------------------
-
--------------------------------------------------------------------*/
void DisplayMsg( QMSG qmsg )
{
int i;
unsigned long j;
char st[20];
CHRMSG kbd;
MSEMSG mou;
if ( qmsg.msg == WM_CHAR ) {
memcpy( &kbd.fs, &qmsg.mp1, 4 );
memcpy( &kbd.chr, &qmsg.mp2, 4 );
sprintf( st, "%03d", kbd.chr );
DspMsg( 23, 4, st );
sprintf( st, "%02x", kbd.scancode );
DspMsg( 23, 5, st );
for ( j = 1, i = 8; i <= 19; i++, j <<= 1 ) {
if ( kbd.fs & j )
DspMsg( 26, i, "TRUE " );
else
DspMsg( 26, i, "FALSE" );
}
}
else if ( qmsg.msg >= WM_MOUSEFIRST && qmsg.msg <= WM_MOUSELAST ) {
memcpy( &mou.codeHitTest, &qmsg.mp2, 4 );
memcpy( &mou.x, &qmsg.mp1, 4 );
sprintf( st, "%3d",mou.x );
DspMsg( 60, 4, st );
sprintf( st, "%3d",mou.y );
DspMsg( 60, 5, st );
sprintf( st, "%03d", mou.codeHitTest );
DspMsg( 60, 6, st );
}
switch ( qmsg.msg ) {
case WM_CHAR : strcpy( st, "WM_CHAR " ); break;
case WM_MOUSEMOVE : strcpy( st, "WM_MOUSEMOVE " ); break;
case WM_BUTTON1DOWN : strcpy( st, "WM_BUTTON1DOWN " ); break;
case WM_BUTTON1UP : strcpy( st, "WM_BUTTON1UP " ); break;
case WM_BUTTON1DBLCLK : strcpy( st, "WM_BUTTON1DBLCLK" ); break;
case WM_BUTTON2DOWN : strcpy( st, "WM_BUTTON2DOWN " ); break;
case WM_BUTTON2UP : strcpy( st, "WM_BUTTON2UP " ); break;
case WM_BUTTON2DBLCLK : strcpy( st, "WM_BUTTON2DBLCLK" ); break;
case WM_BUTTON3DOWN : strcpy( st, "WM_BUTTON3DOWN " ); break;
case WM_BUTTON3UP : strcpy( st, "WM_BUTTON3UP " ); break;
case WM_BUTTON3DBLCLK : strcpy( st, "WM_BUTTON3DBLCLK" ); break;
default : strcpy( st, "UNKNOWN " ); break;
}
DspMsg( 60, 8, st );
sprintf( st, "%09lx", qmsg.time );
DspMsg( 60, 9, st );
}
/*--------------------------------------------------------------------
-
--------------------------------------------------------------------*/
void main()
{
HAB hab;
HMQ hmq;
QMSG qmsg;
CHRMSG kbd;
hab = WinInitialize( 0 );
hmq = WinCreateMsgQueue( hab, 50 );
DspScn();
while ( WinGetMsg( hab, &qmsg, 0, 0, 0 ) ) {
DisplayMsg( qmsg );
if ( qmsg.msg == WM_CHAR ) {
memcpy( &kbd.fs, &qmsg.mp1, 4 );
memcpy( &kbd.chr, &qmsg.mp2, 4 );
if ( kbd.scancode == 1 && kbd.chr == 27 )
break;
}
}
ClrWin( 1, 1, 80, 25, 7 );
GotoxyAbs( 1, 1 );
WinDestroyMsgQueue( hmq );
WinTerminate( hab );
exit( 0 );
}